package com.wisdytech.linkdcs.system.service;


import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.common.bean.StandardResult;
import com.wisdytech.linkdcs.system.model.SysResource;
import com.wisdytech.linkdcs.system.vo.ResourceNodeVO;
import com.wisdytech.linkdcs.system.vo.TreeviewNodeVO;

import java.util.List;

/**
 * 
 * <p>
 * ClassName: ISystemResourceService
 * </p>
 * <p>
 * Description: 资源管理业务接口
 * </p>
 * <p>
 * Author: kongming
 * </p>
 * <p>
 * Date: 2017-9-13
 * </p>
 */
public interface ISystemResourceService {
    /**
     * 新增资源
     * @param sysResource 资源对象
     * @return boolean值
     */
    StandardResult addSysResource(SysResource sysResource);
    /**
     * 删除资源
     * @param id 资源的唯一标识id
     * @return boolean值
     */
    StandardResult delSysResourceById(String id);
    /**
     * 修改资源
     * @param sysResource
     * @return boolean值
     */
    StandardResult updateSysResource(SysResource sysResource);
    /**
     * 分页查询资源列表信息
     * @param resName 资源名称
     * @param resType 资源类型
     * @param filter 分页条件
     * @return 资源列表信息
     */
    PageInfo<SysResource> listSysResources(String resName, String resType, Filter filter);
    /**
     * 
     * <p>Description: 获取全部资源列表</p>
     * @return 资源列表信息
     */
    List<SysResource> listAllResource();
    /**
     * 通过id查询资源对象
     * @param id 资源id
     * @return 资源对象
     */
    SysResource getSysResourceById(String id);
    /**
     * 通过角色id查询对应的资源列表集
     * @param roleId 角色id
     * @return 资源列表集
     */
    List<SysResource> listSysResourceByRoleId(String roleId);
    /**
     * 为相应角色保存资源
     * @param roleId 角色id
     * @param resIds 新增的资源id
     * @return boolean值
     */
    StandardResult saveSysResourceToRoleId(String roleId, String resIds);
    
    /**
     * 
     * <p>Description: 根据角色id获取资源列表</p>
     * @param roleId 角色id
     * @return 资源角色列表
     */
    List<ResourceNodeVO> listRoleResources(String roleId);

    /**
     * mes使用
     * @param roleIds 角色集合
     * @return 资源节点
     */
    List<ResourceNodeVO> getRoleResources(List<String> roleIds);

    List<ResourceNodeVO> getSuperAdminResources();
    
    
    List<SysResource> listAllPageResource();


    
    /**
     * 获取页面资源
     * @param parentId 父页面
     * @return
     */
    public List<SysResource> listPageResource(String parentId);
    
    /**
     * 获取资源列表树形结构
     * @param roleId 角色id
     * @return list
     */
    List<TreeviewNodeVO> getResourceTree(String roleId);
    
    /**
     * 获取资源列表树形结构
     * @param parentId  父节点
     * @return list
     */
    List<TreeviewNodeVO> getParentResourceTree(String parentId);

    /**
     *
     * @param resCode 资源编码
     * @return 所有资源编码字符
     */
    String getParentNode(String resCode);



    
    
}
